<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>18.11. Catching Gdata Exceptions</title>
<link rel="stylesheet" href="dbstyle.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.72.0">
<link rel="start" href="index.html" title="Programmer's Reference Guide">
<link rel="up" href="zend.gdata.html" title="Chapter 18. Zend_Gdata">
<link rel="prev" href="zend.gdata.photos.html" title="18.10. Using Picasa Web Albums">
<link rel="next" href="zend.http.html" title="Chapter 19. Zend_Http">
<link rel="chapter" href="introduction.html" title="Chapter 1. Introduction to Zend Framework">
<link rel="chapter" href="zend.acl.html" title="Chapter 2. Zend_Acl">
<link rel="chapter" href="zend.auth.html" title="Chapter 3. Zend_Auth">
<link rel="chapter" href="zend.cache.html" title="Chapter 4. Zend_Cache">
<link rel="chapter" href="zend.config.html" title="Chapter 5. Zend_Config">
<link rel="chapter" href="zend.console.getopt.html" title="Chapter 6. Zend_Console_Getopt">
<link rel="chapter" href="zend.controller.html" title="Chapter 7. Zend_Controller">
<link rel="chapter" href="zend.currency.html" title="Chapter 8. Zend_Currency">
<link rel="chapter" href="zend.date.html" title="Chapter 9. Zend_Date">
<link rel="chapter" href="zend.db.html" title="Chapter 10. Zend_Db">
<link rel="chapter" href="zend.debug.html" title="Chapter 11. Zend_Debug">
<link rel="chapter" href="zend.dojo.html" title="Chapter 12. Zend_Dojo">
<link rel="chapter" href="zend.dom.html" title="Chapter 13. Zend_Dom">
<link rel="chapter" href="zend.exception.html" title="Chapter 14. Zend_Exception">
<link rel="chapter" href="zend.feed.html" title="Chapter 15. Zend_Feed">
<link rel="chapter" href="zend.filter.html" title="Chapter 16. Zend_Filter">
<link rel="chapter" href="zend.form.html" title="Chapter 17. Zend_Form">
<link rel="chapter" href="zend.gdata.html" title="Chapter 18. Zend_Gdata">
<link rel="chapter" href="zend.http.html" title="Chapter 19. Zend_Http">
<link rel="chapter" href="zend.infocard.html" title="Chapter 20. Zend_InfoCard">
<link rel="chapter" href="zend.json.html" title="Chapter 21. Zend_Json">
<link rel="chapter" href="zend.layout.html" title="Chapter 22. Zend_Layout">
<link rel="chapter" href="zend.ldap.html" title="Chapter 23. Zend_Ldap">
<link rel="chapter" href="zend.loader.html" title="Chapter 24. Zend_Loader">
<link rel="chapter" href="zend.locale.html" title="Chapter 25. Zend_Locale">
<link rel="chapter" href="zend.log.html" title="Chapter 26. Zend_Log">
<link rel="chapter" href="zend.mail.html" title="Chapter 27. Zend_Mail">
<link rel="chapter" href="zend.measure.html" title="Chapter 28. Zend_Measure">
<link rel="chapter" href="zend.memory.html" title="Chapter 29. Zend_Memory">
<link rel="chapter" href="zend.mime.html" title="Chapter 30. Zend_Mime">
<link rel="chapter" href="zend.openid.html" title="Chapter 31. Zend_OpenId">
<link rel="chapter" href="zend.paginator.html" title="Chapter 32. Zend_Paginator">
<link rel="chapter" href="zend.pdf.html" title="Chapter 33. Zend_Pdf">
<link rel="chapter" href="zend.registry.html" title="Chapter 34. Zend_Registry">
<link rel="chapter" href="zend.rest.html" title="Chapter 35. Zend_Rest">
<link rel="chapter" href="zend.search.lucene.html" title="Chapter 36. Zend_Search_Lucene">
<link rel="chapter" href="zend.server.html" title="Chapter 37. Zend_Server">
<link rel="chapter" href="zend.service.html" title="Chapter 38. Zend_Service">
<link rel="chapter" href="zend.session.html" title="Chapter 39. Zend_Session">
<link rel="chapter" href="zend.soap.html" title="Chapter 40. Zend_Soap">
<link rel="chapter" href="zend.test.html" title="Chapter 41. Zend_Test">
<link rel="chapter" href="zend.text.html" title="Chapter 42. Zend_Text">
<link rel="chapter" href="zend.timesync.html" title="Chapter 43. Zend_TimeSync">
<link rel="chapter" href="zend.translate.html" title="Chapter 44. Zend_Translate">
<link rel="chapter" href="zend.uri.html" title="Chapter 45. Zend_Uri">
<link rel="chapter" href="zend.validate.html" title="Chapter 46. Zend_Validate">
<link rel="chapter" href="zend.version.html" title="Chapter 47. Zend_Version">
<link rel="chapter" href="zend.view.html" title="Chapter 48. Zend_View">
<link rel="chapter" href="zend.xmlrpc.html" title="Chapter 49. Zend_XmlRpc">
<link rel="appendix" href="requirements.html" title="Appendix A. Zend Framework Requirements">
<link rel="appendix" href="coding-standard.html" title="Appendix B. Zend Framework Coding Standard for PHP">
<link rel="appendix" href="copyrights.html" title="Appendix C. Copyright Information">
<link rel="index" href="the.index.html" title="Index">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<div class="navheader"><table width="100%" summary="Navigation header">
<tr><th colspan="3" align="center">18.11. Catching Gdata Exceptions</th></tr>
<tr>
<td width="20%" align="left">
<a accesskey="p" href="zend.gdata.photos.html">Prev</a> </td>
<th width="60%" align="center">Chapter 18. Zend_Gdata</th>
<td width="20%" align="right"> <a accesskey="n" href="zend.http.html">Next</a>
</td>
</tr>
</table></div>
<div class="sect1" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="zend.gdata.exception"></a>18.11. Catching Gdata Exceptions</h2></div></div></div>
<p>
        The <code class="code">Zend_Gdata_App_Exception</code> class is a base class
        for exceptions thrown by Zend_Gdata.  You can catch any exception
        thrown by Zend_Gdata by catching Zend_Gdata_App_Exception.
    </p>
<pre class="programlisting">&lt;?php
try {
    $client = Zend_Gdata_ClientLogin::getHttpClient($username, $password);
} catch(Zend_Gdata_App_Exception $ex) {
    // Report the exception to the user
    die($ex-&gt;getMessage());
}
    </pre>
<p>
        The following exception subclasses are used by Zend_Gdata:

        </p>
<div class="itemizedlist"><ul type="disc">
<li><p>
                    <code class="code">Zend_Gdata_App_AuthException</code>
                    indicates that the user's account credentials were not valid.
                </p></li>
<li><p>
                    <code class="code">Zend_Gdata_App_BadMethodCallException</code>
                    indicates that a method was called for a service
                    that does not support the method.  For example,
                    the CodeSearch service does not support <code class="code">post()</code>.
                </p></li>
<li><p>
                    <code class="code">Zend_Gdata_App_HttpException</code>
                    indicates that an HTTP request was not successful.
                    Provides the ability to get the full Zend_Http_Response
                    object to determine the exact cause of the failure in
                    cases where <code class="code">$e-&gt;getMessage()</code> does not provide
                    enough details.
                </p></li>
<li><p>
                    <code class="code">Zend_Gdata_App_InvalidArgumentException</code>
                    is thrown when the application provides a value that
                    is not valid in a given context.  For example,
                    specifying a Calendar visibility value of "banana",
                    or fetching a Blogger feed without specifying
                    any blog name.
                </p></li>
<li><p>
                  <code class="code">Zend_Gdata_App_CaptchaRequiredException</code>
                  is thrown when a ClientLogin attempt receives a
                  <span class="trademark">CAPTCHA</span>™ challenge from the 
                  authentication service. This exception contains a token 
                  ID and a URL to a <span class="trademark">CAPTCHA</span>™ 
                  challenge image. The image is a visual puzzle that 
                  should be displayed to the user. After
                  collecting the user's response to the challenge 
                  image, the response can be included with the next 
                  ClientLogin attempt.The user can alternatively be 
                  directed to this website:
                  <a href="https://www.google.com/accounts/DisplayUnlockCaptcha" target="_top">https://www.google.com/accounts/DisplayUnlockCaptcha</a>
                  Further information can be found in the 
                  <a href="zend.gdata.clientlogin.html" title="18.3. Authenticating with ClientLogin">ClientLogin documentation</a>.
                </p></li>
</ul></div>
<p>
    </p>
<p>
        You can use these exception subclasses to handle specific exceptions
        differently.  See the API documentation for information on which
        exception subclasses are thrown by which methods in Zend_Gdata.
    </p>
<pre class="programlisting">&lt;?php
try {
    $client = Zend_Gdata_ClientLogin::getHttpClient($username, $password, $service);
} catch(Zend_Gdata_App_AuthException $authEx) {
    // The user's credentials were incorrect.
    // It would be appropriate to give the user a second try.
    ...
} catch(Zend_Gdata_App_HttpException $httpEx) {
    // Google Data servers cannot be contacted.
    die($httpEx-&gt;getMessage);}
    </pre>
</div>
<div class="navfooter"><table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left">
<a accesskey="p" href="zend.gdata.photos.html">Prev</a> </td>
<td width="20%" align="center"><a accesskey="u" href="zend.gdata.html">Up</a></td>
<td width="40%" align="right"> <a accesskey="n" href="zend.http.html">Next</a>
</td>
</tr>
<tr>
<td width="40%" align="left" valign="top">18.10. Using Picasa Web Albums </td>
<td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td>
<td width="40%" align="right" valign="top"> Chapter 19. Zend_Http</td>
</tr>
</table></div>
<div class="revinfo"></div>
</body>
</html>
